package com.sky.constant;

/**
 * 信息提示常量类
 */
public class MessageConstant {

    // 用户认证相关错误消息
    public static final String PASSWORD_ERROR = "密码错误";
    public static final String ACCOUNT_NOT_FOUND = "账号不存在";
    public static final String ACCOUNT_LOCKED = "账号被锁定";
    public static final String USER_NOT_LOGIN = "用户未登录";
    public static final String LOGIN_FAILED = "登录失败";
    public static final String LONGIN_EMPTY = "用户名、密码、邮箱均不能为空";
    public static final String LONGIN_Empty = "用户名密码不能为空";
    public static final String INSUFFICIENT_ACCOUNT_PRIVILEGES = "账户权限不足";
    public static final String THE_ACCOUNT_HAS_BEEN_SUSPENDED = "账户已被封禁，如有疑问请联系管理员";

    // 用户注册相关错误消息
    public static final String MAKING_REPEATED_REQUESTS = "请不要短时间内重复发起请求";
    public static final String VERIFY_EMAIL_EXPIRATION = "验证邮件已过期,请重新申请注册";

    // 用户管理相关错误消息
    public static final String USER_NOT_FOUND = "用户不存在";
    public static final String INVALID_STATUS = "无效的用户状态";
    public static final String BAN_REASON_REQUIRED = "封禁用户时必须提供原因";
    public static final String BAN_DURATION_INVALID = "封禁时长必须大于0";
    public static final String USER_ALREADY_BANNED = "用户已处于封禁状态";
    public static final String USER_NOT_BANNED = "用户未被封禁";
    public static final String ADMIN_CANNOT_BE_BANNED = "管理员账号不能被封禁";
    public static final String CANNOT_BAN_SELF = "不能封禁自己的账号";
    public static final String BAN_RECORD_NOT_FOUND = "未找到封禁记录";

    // 图书相关错误消息
    public static final String BOOK_NOT_FOUND = "图书不存在";
    public static final String THIS_CATEGORY_HAS_ASSOCIATED_BOOKS = "该分类有关联图书,不允许删除";
    public static final String UPLOAD_FAILED = "图书上传失败";
    public static final String LACK_OF_BOOKS_IN_STOCK = "图书库存不足";
    public static final String BOOK_ALREADY_COLLECTED = "该图书已在收藏列表中";
    public static final String COLLECTION_NOT_FOUND = "该图书未收藏";

    // 借阅相关错误消息
    public static final String DUPLICATE_BORROW_REQUEST = "已有未完成的借阅申请";
    public static final String REQUEST_NOT_FOUND = "借阅申请不存在";
    public static final String UNAUTHORIZED_OPERATION = "无权操作此申请";
    public static final String INVALID_REQUEST_STATUS = "申请状态不允许此操作";
    public static final String THE_ORDER_IS_NOT_OVERDUE = "订单还未逾期";
    public static final String BORROW_RECORD_NOT_FOUND = "借阅记录不存在";
    public static final String CANNOT_RETURN_BOOK = "该借阅记录不是借阅中或已逾期状态，无法归还";
    public static final String BOOK_INFO_NOT_FOUND = "图书信息不存在";

    // 图书评分相关错误消息
    public static final String RATING_ALREADY_EXISTS = "您已经评价过该图书";
    public static final String RATING_NOT_FOUND = "评分不存在或无权修改";
    public static final String RATING_DELETE_FAILED = "评分不存在或无权删除";
    public static final String RATING_INVALID = "评分必须在1-5之间";
    public static final String COMMENT_TOO_LONG = "评论内容不能超过500字";

    // 通用错误消息
    public static final String UNKNOWN_ERROR = "未知错误";
    public static final String ALREADY_EXISTS = "已存在";
    public static final String THE_SUBMISSION_CANNOT_BE_EMPTY = "提交内容不能为空";
    public static final String THE_REQUIRED_DATA_TYPES_DO_NOT_MATCH = "提供的数据类型与所需值不匹配";
    public static final String PLEASE_ADD_A_NOTE = "请添加备注说明拒绝用户图书申请理由";
    public static final String INFORMATION_DOESNT_EXIST = "信息不存在";

    public static final String USERNAME_EMAIL_MISMATCH = "用户名与邮箱不匹配";

    public static final String VERIFICATION_CODE_EXPIRED = "验证码已过期";
    public static final String VERIFICATION_CODE_ERROR = "验证码错误";

    //证码发送成功
    public static final String SEND_VERIFICATION_CODE_SUCCESS = "验证码发送成功";

    // 角色管理相关错误消息
    public static final String ROLE_NAME_EXISTS = "角色名已存在";
    public static final String ROLE_NOT_FOUND = "角色不存在";
    public static final String ROLE_IN_USE = "该角色正在使用中，无法删除";
    public static final String ROLE_PERMISSION_UPDATE_FAILED = "角色权限更新失败";
    public static final String ROLE_DELETE_FAILED = "角色删除失败";
    public static final String ROLE_NAME_REQUIRED = "角色名称不能为空";
    public static final String ROLE_PERMISSION_REQUIRED = "请至少分配一个权限";
    public static final String ROLE_ASSIGNMENT_FAILED = "角色分配失败";
    public static final String ROLE_REMOVAL_FAILED = "角色移除失败";
    public static final String ROLE_ALREADY_ASSIGNED = "该角色已分配给该管理员";
    public static final String ROLE_SYSTEM_PROTECTED = "系统保护角色不能删除或修改";
    public static final String ROLE_NAME_TOO_LONG = "角色名称不能超过50个字符";
    public static final String ROLE_DESCRIPTION_TOO_LONG = "角色描述不能超过200个字符";

    // 密码修改相关错误消息
    public static final String PASSWORD_SAME_AS_OLD = "新密码不能与当前密码相同";
    public static final String PASSWORD_UPDATE_FAILED = "密码修改失败";
    public static final String PASSWORD_LENGTH_ERROR = "密码长度必须在6-20个字符之间";
}
